package com.best.entity;

/**
 * @author Jiang Akang
 * employeeId: BG435424
 * @date 2021/5/23
 **/

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 把这个对象创建好之后，能不能通过getId()和getName()，把id和name的值获取到
 * 答案肯定是能，
 */
public class User implements ApplicationContextAware, BeanFactoryAware{

	private int id;

	private String name;

	/**
	 * 这样就可以通过bean.getApplicationContext()来获取相应的值了
	 * 但是，我们现在只能保证，getApplicationContext()不报错，里面获取的内容肯定是null
	 * 我们要在什么时候，给它set值呢？
	 * 需要人为去调用吗？setApplicationContext()?
	 * 假如说不用，那谁给它赋值，在什么时候给它赋值？
	 * 这时候，就用到了Aware接口，比如实现ApplicationContextAware
	 * 这个接口里面就有一个方法setApplicationContext，所以这个set方法的调用就不需要我们来调用了
	 */
	private ApplicationContext applicationContext;

	// 容器对象，不需要手动赋值
	private BeanFactory beanFactory;


	public BeanFactory getBeanFactory() {
		return beanFactory;
	}

	public ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	public void setApplicationContext(ApplicationContext applicationContext) {
		this.applicationContext = applicationContext;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}


	@Override
	public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
		this.beanFactory = beanFactory;
	}
}
